<?php
class Filme{

public static $SP_id_filme="id_filme";
public static $SP_nomeFilme="nomeFilme";
public static $SP_generoFilme="generoFilme";
public static $SP_anoFilme="anoFilme";
public static $SP_realizadorFilme="realizadorFilme";
public static $SP_produtorFilme="produtorFilme";


public function addWhere($prop,$value)
{
	$this->where[count($this->where)]=array($prop,$value);
}

public function getByWhere()
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$k=0;
	$query="SELECT * from Filme where ";
	for($i=0;$i<count($this->where);$i++)
	{
		if($k!=0)
			$query.=" AND ";
		$query.=$this->where[$i][0]."=".$this->where[$i][1];
		$k=$k+1;
	}
	$k=0;
	$res=mysql_query($query,$con);
	$rsOut=array();
	if(!$res) return array();
	while(($linha=mysql_fetch_assoc($res)))
	{
		$rsOut[$k]=new Filme();
		$rsOut[$k]->setid_filme($linha['id_filme']);
		$rsOut[$k]->setnomeFilme($linha['nomeFilme']);
		$rsOut[$k]->setgeneroFilme($linha['generoFilme']);
		$rsOut[$k]->setanoFilme($linha['anoFilme']);
		$rsOut[$k]->setrealizadorFilme($linha['realizadorFilme']);
		$rsOut[$k]->setprodutorFilme($linha['produtorFilme']);
		$k=$k+1;
	}
	mysql_close($con);
	return $rsOut;
}

public function clearWhere()
{
	$this->where=array();
}

/**
Valor de id_f
*/
private $id_filme=NULL;
/**
Valor de nomeFilme
*/
private $nomeFilme=NULL;
/**
Valor de generoFilme
*/
private $generoFilme=NULL;
/**
Valor de anoFilme
*/
private $anoFilme=NULL;
/**
Valor de realizadorFilme
*/
private $realizadorFilme=NULL;
/**
Valor de produtorFilme
*/
private $produtorFilme=NULL;
private $con=NULL;
private $where=array();

/**
 * Construtor para a tabela Filme
 */
public function Filme($nomeFilme=NULL,$generoFilme=NULL,$anoFilme=NULL,$realizadorFilme=NULL,$produtorFilme=NULL)
{
	$this->id_filme=NULL;
	$this->nomeFilme=$nomeFilme;
	$this->generoFilme=$generoFilme;
	$this->anoFilme=$anoFilme;
	$this->realizadorFilme=$realizadorFilme;
	$this->produtorFilme=$produtorFilme;
}

/**
 * M�todo que efectua uma connec��o � base de dados
 */
public function createConn()
{
	return mysql_connect('localhost','gaspar','gaspy007');
}

/**
* Getter para a propriedade Int
* @param  Valor de Int
*/
public function getid_filme(){
	return $this->id_filme;
}
/**
* Getter para a propriedade String
* @param  Valor de String
*/
public function getnomeFilme(){
	return $this->nomeFilme;
}
/**
* Getter para a propriedade String
* @param  Valor de String
*/
public function getgeneroFilme(){
	return $this->generoFilme;
}
/**
* Getter para a propriedade Int
* @param  Valor de Int
*/
public function getanoFilme(){
	return $this->anoFilme;
}
/**
* Getter para a propriedade String
* @param  Valor de String
*/
public function getrealizadorFilme(){
	return $this->realizadorFilme;
}
/**
* Getter para a propriedade String
* @param  Valor de String
*/
public function getprodutorFilme(){
	return $this->produtorFilme;
}


/**
*@param Int Valor do parametro
*/

public function setid_filme($id_filme){
$this->id_filme=$id_filme;
}

/**
*@param String Valor do parametro
*/

public function setnomeFilme($nomeFilme){
$this->nomeFilme=$nomeFilme;
}

/**
*@param String Valor do parametro
*/

public function setgeneroFilme($generoFilme){
$this->generoFilme=$generoFilme;
}

/**
*@param Int Valor do parametro
*/

public function setanoFilme($anoFilme){
$this->anoFilme=$anoFilme;
}

/**
*@param String Valor do parametro
*/

public function setrealizadorFilme($realizadorFilme){
$this->realizadorFilme=$realizadorFilme;
}

/**
*@param String Valor do parametro
*/

public function setprodutorFilme($produtorFilme){
$this->produtorFilme=$produtorFilme;
}

/**
* Insere uma entrada na tabela
* @param String Valor da propriedade nomeFilme
* @param String Valor da propriedade generoFilme
* @param Int Valor da propriedade anoFilme
* @param String Valor da propriedade realizadorFilme
* @param String Valor da propriedade produtorFilme
* @return Boolean
*/
public function insert($_nomeFilme=NULL,$_generoFilme=NULL,$_anoFilme=NULL,$_realizadorFilme=NULL,$_produtorFilme=NULL)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="INSERT INTO Filme (nomeFilme,generoFilme,anoFilme,realizadorFilme,produtorFilme) VALUES ("."'".$_nomeFilme."'".","."'".$_generoFilme."'".","."'".$_anoFilme."'".","."'".$_realizadorFilme."'".","."'".$_produtorFilme."'".")";
	if(mysql_query($query,$con)!=NULL)
	{
		mysql_close($con);
		return true;
	}
	return false;
}

/**
 * Insere o objecto na base de dados 
 */
public function insertSelf()
{
	return $this->insert($this->nomeFilme,$this->generoFilme,$this->anoFilme,$this->realizadorFilme,$this->produtorFilme);
}

/**
 * Select a partir da variavel id_filme
 * @param id_filme Valor do parametro 
 */
public function selectByid_filme($value)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT * from Filme where id_filme=".$value;
	$res=mysql_query($query,$con);
	$rsOut=array();
	$k=0;
	while(($linha=mysql_fetch_assoc($res)))
	{
		$rsOut[$k]=new Filme();
		$rsOut[$k]->setid_filme($linha['id_filme']);
		$rsOut[$k]->setnomeFilme($linha['nomeFilme']);
		$rsOut[$k]->setgeneroFilme($linha['generoFilme']);
		$rsOut[$k]->setanoFilme($linha['anoFilme']);
		$rsOut[$k]->setrealizadorFilme($linha['realizadorFilme']);
		$rsOut[$k]->setprodutorFilme($linha['produtorFilme']);
		$k=$k+1;
	}
	mysql_close($con);
	return $rsOut;
}
/**
 * Select a partir da variavel nomeFilme
 * @param nomeFilme Valor do parametro 
 */
public function selectBynomeFilme($value)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT * from Filme where nomeFilme='".$value."'";
	$res=mysql_query($query,$con);
	$rsOut=array();
	$k=0;
	while(($linha=mysql_fetch_assoc($res)))
	{
		$rsOut[$k]=new Filme();
		$rsOut[$k]->setid_filme($linha['id_filme']);
		$rsOut[$k]->setnomeFilme($linha['nomeFilme']);
		$rsOut[$k]->setgeneroFilme($linha['generoFilme']);
		$rsOut[$k]->setanoFilme($linha['anoFilme']);
		$rsOut[$k]->setrealizadorFilme($linha['realizadorFilme']);
		$rsOut[$k]->setprodutorFilme($linha['produtorFilme']);
		$k=$k+1;
	}
	mysql_close($con);
	return $rsOut;
}
/**
 * Select a partir da variavel generoFilme
 * @param generoFilme Valor do parametro 
 */
public function selectBygeneroFilme($value)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT * from Filme where generoFilme='".$value."'";
	$res=mysql_query($query,$con);
	$rsOut=array();
	$k=0;
	while(($linha=mysql_fetch_assoc($res)))
	{
		$rsOut[$k]=new Filme();
		$rsOut[$k]->setid_filme($linha['id_filme']);
		$rsOut[$k]->setnomeFilme($linha['nomeFilme']);
		$rsOut[$k]->setgeneroFilme($linha['generoFilme']);
		$rsOut[$k]->setanoFilme($linha['anoFilme']);
		$rsOut[$k]->setrealizadorFilme($linha['realizadorFilme']);
		$rsOut[$k]->setprodutorFilme($linha['produtorFilme']);
		$k=$k+1;
	}
	mysql_close($con);
	return $rsOut;
}
/**
 * Select a partir da variavel anoFilme
 * @param anoFilme Valor do parametro 
 */
public function selectByanoFilme($value)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT * from Filme where anoFilme='".$value."'";
	$res=mysql_query($query,$con);
	$rsOut=array();
	$k=0;
	while(($linha=mysql_fetch_assoc($res)))
	{
		$rsOut[$k]=new Filme();
		$rsOut[$k]->setid_filme($linha['id_filme']);
		$rsOut[$k]->setnomeFilme($linha['nomeFilme']);
		$rsOut[$k]->setgeneroFilme($linha['generoFilme']);
		$rsOut[$k]->setanoFilme($linha['anoFilme']);
		$rsOut[$k]->setrealizadorFilme($linha['realizadorFilme']);
		$rsOut[$k]->setprodutorFilme($linha['produtorFilme']);
		$k=$k+1;
	}
	mysql_close($con);
	return $rsOut;
}
/**
 * Select a partir da variavel realizadorFilme
 * @param realizadorFilme Valor do parametro 
 */
public function selectByrealizadorFilme($value)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT * from Filme where realizadorFilme='".$value."'";
	$res=mysql_query($query,$con);
	$rsOut=array();
	$k=0;
	while(($linha=mysql_fetch_assoc($res)))
	{
		$rsOut[$k]=new Filme();
		$rsOut[$k]->setid_filme($linha['id_filme']);
		$rsOut[$k]->setnomeFilme($linha['nomeFilme']);
		$rsOut[$k]->setgeneroFilme($linha['generoFilme']);
		$rsOut[$k]->setanoFilme($linha['anoFilme']);
		$rsOut[$k]->setrealizadorFilme($linha['realizadorFilme']);
		$rsOut[$k]->setprodutorFilme($linha['produtorFilme']);
		$k=$k+1;
	}
	mysql_close($con);
	return $rsOut;
}
/**
 * Select a partir da variavel produtorFilme
 * @param produtorFilme Valor do parametro 
 */
public function selectByprodutorFilme($value)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT * from Filme where produtorFilme='".$value."'";
	$res=mysql_query($query,$con);
	$rsOut=array();
	$k=0;
	while(($linha=mysql_fetch_assoc($res)))
	{
		$rsOut[$k]=new Filme();
		$rsOut[$k]->setid_filme($linha['id_filme']);
		$rsOut[$k]->setnomeFilme($linha['nomeFilme']);
		$rsOut[$k]->setgeneroFilme($linha['generoFilme']);
		$rsOut[$k]->setanoFilme($linha['anoFilme']);
		$rsOut[$k]->setrealizadorFilme($linha['realizadorFilme']);
		$rsOut[$k]->setprodutorFilme($linha['produtorFilme']);
		$k=$k+1;
	}
	mysql_close($con);
	return $rsOut;
}

/**
*M�todo que efectua um select � tabela Filme a partir de uma query fornecida
*@param String representando a query
*/

public function selectByQuery($query)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$q="SELECT * FROM Filme WHERE ".$query;
	$arrOut=array();
	$res=mysql_query($q,$con);
	$pos=0;
	while(($linha=mysql_fetch_assoc($res)))
	{
		$arrOut[$pos]=new Filme();
		$arrOut[$pos]->setid_filme($linha['id_filme']);
		$arrOut[$pos]->setnomeFilme($linha['nomeFilme']);
		$arrOut[$pos]->setgeneroFilme($linha['generoFilme']);
		$arrOut[$pos]->setanoFilme($linha['anoFilme']);
		$arrOut[$pos]->setrealizadorFilme($linha['realizadorFilme']);
		$arrOut[$pos]->setprodutorFilme($linha['produtorFilme']);
		$pos=$pos+1;
	}
	mysql_close($con);
	return $arrOut;
}

/**
 * M�todo que executa um update que verifique o crit�rio presente no campo dado como par�metro de entrada
 * @param id_filme condi��o pela qual o update � executado
 */
public function updateByid_filme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="UPDATE Filme SET nomeFilme='".$this->nomeFilme."'".",generoFilme='".$this->generoFilme."'".",anoFilme='".$this->anoFilme."'".",realizadorFilme='".$this->realizadorFilme."'".",produtorFilme='".$this->produtorFilme."'"." WHERE id_filme=".$valor;
	$res=mysql_query($query,$con);
	mysql_close($con);
}
/**
 * M�todo que executa um update que verifique o crit�rio presente no campo dado como par�metro de entrada
 * @param nomeFilme condi��o pela qual o update � executado
 */
public function updateBynomeFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="UPDATE Filme SET nomeFilme='".$this->nomeFilme."'".",generoFilme='".$this->generoFilme."'".",anoFilme='".$this->anoFilme."'".",realizadorFilme='".$this->realizadorFilme."'".",produtorFilme='".$this->produtorFilme."'"." WHERE nomeFilme='".$valor."'";
	$res=mysql_query($query,$con);
	mysql_close($con);
}
/**
 * M�todo que executa um update que verifique o crit�rio presente no campo dado como par�metro de entrada
 * @param generoFilme condi��o pela qual o update � executado
 */
public function updateBygeneroFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="UPDATE Filme SET nomeFilme='".$this->nomeFilme."'".",generoFilme='".$this->generoFilme."'".",anoFilme='".$this->anoFilme."'".",realizadorFilme='".$this->realizadorFilme."'".",produtorFilme='".$this->produtorFilme."'"." WHERE generoFilme='".$valor."'";
	$res=mysql_query($query,$con);
	mysql_close($con);
}
/**
 * M�todo que executa um update que verifique o crit�rio presente no campo dado como par�metro de entrada
 * @param anoFilme condi��o pela qual o update � executado
 */
public function updateByanoFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="UPDATE Filme SET nomeFilme='".$this->nomeFilme."'".",generoFilme='".$this->generoFilme."'".",anoFilme='".$this->anoFilme."'".",realizadorFilme='".$this->realizadorFilme."'".",produtorFilme='".$this->produtorFilme."'"." WHERE anoFilme='".$valor."'";
	$res=mysql_query($query,$con);
	mysql_close($con);
}
/**
 * M�todo que executa um update que verifique o crit�rio presente no campo dado como par�metro de entrada
 * @param realizadorFilme condi��o pela qual o update � executado
 */
public function updateByrealizadorFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="UPDATE Filme SET nomeFilme='".$this->nomeFilme."'".",generoFilme='".$this->generoFilme."'".",anoFilme='".$this->anoFilme."'".",realizadorFilme='".$this->realizadorFilme."'".",produtorFilme='".$this->produtorFilme."'"." WHERE realizadorFilme='".$valor."'";
	$res=mysql_query($query,$con);
	mysql_close($con);
}
/**
 * M�todo que executa um update que verifique o crit�rio presente no campo dado como par�metro de entrada
 * @param produtorFilme condi��o pela qual o update � executado
 */
public function updateByprodutorFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="UPDATE Filme SET nomeFilme='".$this->nomeFilme."'".",generoFilme='".$this->generoFilme."'".",anoFilme='".$this->anoFilme."'".",realizadorFilme='".$this->realizadorFilme."'".",produtorFilme='".$this->produtorFilme."'"." WHERE produtorFilme='".$valor."'";
	$res=mysql_query($query,$con);
	mysql_close($con);
}


/**
 * M�todo que executa um delete na base de dados a partir da propriedade id_filme
 * @param valor do id_filme
 */
public function deleteByid_filme($val)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="DELETE FROM Filme WHERE id_filme=".$val;
	mysql_query($query,$con);
	mysql_close($con);
}

/**
 * M�todo que executa um delete na base de dados a partir da propriedade nomeFilme
 * @param valor do nomeFilme
 */
public function deleteBynomeFilme($val)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="DELETE FROM Filme WHERE nomeFilme='".$val."'";
	mysql_query($query,$con);
	mysql_close($con);
}

/**
 * M�todo que executa um delete na base de dados a partir da propriedade generoFilme
 * @param valor do generoFilme
 */
public function deleteBygeneroFilme($val)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="DELETE FROM Filme WHERE generoFilme='".$val."'";
	mysql_query($query,$con);
	mysql_close($con);
}

/**
 * M�todo que executa um delete na base de dados a partir da propriedade anoFilme
 * @param valor do anoFilme
 */
public function deleteByanoFilme($val)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="DELETE FROM Filme WHERE anoFilme='".$val."'";
	mysql_query($query,$con);
	mysql_close($con);
}

/**
 * M�todo que executa um delete na base de dados a partir da propriedade realizadorFilme
 * @param valor do realizadorFilme
 */
public function deleteByrealizadorFilme($val)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="DELETE FROM Filme WHERE realizadorFilme='".$val."'";
	mysql_query($query,$con);
	mysql_close($con);
}

/**
 * M�todo que executa um delete na base de dados a partir da propriedade produtorFilme
 * @param valor do produtorFilme
 */
public function deleteByprodutorFilme($val)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="DELETE FROM Filme WHERE produtorFilme='".$val."'";
	mysql_query($query,$con);
	mysql_close($con);
}


/**
 * Conta o n�mero de elementos na base de dados que correspondem ao valor em quest�o para a propriedadeid_filme
 * @return Inteiro representando o n�mero de elementos
 */
public function countByid_filme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT COUNT(*) FROM Filme WHERE id_filme=".$valor;
	$res=mysql_query($query,$con);
	$linha=mysql_fetch_array($res);
	mysql_close($con);
	return $linha[0];
}	
/**
 * Conta o n�mero de elementos na base de dados que correspondem ao valor em quest�o para a propriedadenomeFilme
 * @return Inteiro representando o n�mero de elementos
 */
public function countBynomeFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT COUNT(*) FROM Filme WHERE nomeFilme='".$valor."'";
	$res=mysql_query($query,$con);
	$linha=mysql_fetch_array($res);
	mysql_close($con);
	return $linha[0];
}	
/**
 * Conta o n�mero de elementos na base de dados que correspondem ao valor em quest�o para a propriedadegeneroFilme
 * @return Inteiro representando o n�mero de elementos
 */
public function countBygeneroFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT COUNT(*) FROM Filme WHERE generoFilme='".$valor."'";
	$res=mysql_query($query,$con);
	$linha=mysql_fetch_array($res);
	mysql_close($con);
	return $linha[0];
}	
/**
 * Conta o n�mero de elementos na base de dados que correspondem ao valor em quest�o para a propriedadeanoFilme
 * @return Inteiro representando o n�mero de elementos
 */
public function countByanoFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT COUNT(*) FROM Filme WHERE anoFilme='".$valor."'";
	$res=mysql_query($query,$con);
	$linha=mysql_fetch_array($res);
	mysql_close($con);
	return $linha[0];
}	
/**
 * Conta o n�mero de elementos na base de dados que correspondem ao valor em quest�o para a propriedaderealizadorFilme
 * @return Inteiro representando o n�mero de elementos
 */
public function countByrealizadorFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT COUNT(*) FROM Filme WHERE realizadorFilme='".$valor."'";
	$res=mysql_query($query,$con);
	$linha=mysql_fetch_array($res);
	mysql_close($con);
	return $linha[0];
}	
/**
 * Conta o n�mero de elementos na base de dados que correspondem ao valor em quest�o para a propriedadeprodutorFilme
 * @return Inteiro representando o n�mero de elementos
 */
public function countByprodutorFilme($valor)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="SELECT COUNT(*) FROM Filme WHERE produtorFilme='".$valor."'";
	$res=mysql_query($query,$con);
	$linha=mysql_fetch_array($res);
	mysql_close($con);
	return $linha[0];
}	
public function freeSqlQuery($q)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$res=mysql_query($q,$con);
	$outRes=array();
	$pos=0;
	while(($linha=mysql_fetch_array($res))!=NULL)
	{
		$pos=count($outRes);
		$outRes[$pos]=array();
		for($i=0;$i<count($linha);$i++)
		{
			if(isset($linha[$i]))
				$outRes[$pos][$i]=$linha[$i];
		}
	}
	mysql_close($con);
	return $outRes;
}

/**
* Insere uma entrada na tabela
* @param String Valor da propriedade nomeFilme
* @param String Valor da propriedade generoFilme
* @param Int Valor da propriedade anoFilme
* @param String Valor da propriedade realizadorFilme
* @param String Valor da propriedade produtorFilme
* @return Boolean
*/
public function insertAndGetID($_nomeFilme=NULL,$_generoFilme=NULL,$_anoFilme=NULL,$_realizadorFilme=NULL,$_produtorFilme=NULL)
{
	$con=$this->createConn();
	mysql_select_db("gaspydb",$con);
	$query="INSERT INTO Filme (nomeFilme,generoFilme,anoFilme,realizadorFilme,produtorFilme) VALUES ("."'".$_nomeFilme."'".","."'".$_generoFilme."'".","."'".$_anoFilme."'".","."'".$_realizadorFilme."'".","."'".$_produtorFilme."'".")";
	$res=mysql_query($query,$con);
	$id=mysql_insert_id();
	mysql_close($con);
	return $id;
}

}
?>